﻿#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

//2.注释下面代码；#if0  #endif
#if 0
struct Person
{
	char name[64];
	int age;
};
typedef struct Person myPerson;
#endif

//3.上面两句可以合成一句表示；
typedef struct Person
{
	char name[64];
	int age;
}myPerson;

//6.为解决char* p1, p2;定义的两个变量p1和p2的类型不同，用typedef重定义char*；
typedef char* pChar;

//8.不同版本的编译器，对于long long类型支持不足，需要使用自定义类型，防止改动太多出错；有利于程序的移植性；
typedef long long mytype_t;
void testTypedef()
{
	//struct Person p;
	//1.typedef重新命名结构体名后，定义结构体的方式；
	myPerson p;

	//char* p1, p2;
	//7.用pChar换掉char*；等于char *p1, *p2;
	//pChar p1, p2;
	char* p1, * p2;

	//long long a;
	mytype_t a;

	cout << "4.输出变量p1的类型：" << typeid(p1).name() << endl;//char *-->char *-->char *
	cout << "5.输出变量p2的类型：" << typeid(p2).name() << endl;//char -->char *-->char *
}

//main177：typedef的用法
int main177()
{
	testTypedef();

	system("pause");
	return EXIT_SUCCESS;
}